/*
 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package javax.swing.plaf.metal;

import javax.swing.*;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.BasicSeparatorUI;


/**
 * A Metal L&amp;F implementation of SeparatorUI.  This implementation
 * is a "combined" view/controller.
 * <p>
 * <strong>Warning:</strong>
 * Serialized objects of this class will not be compatible with
 * future Swing releases. The current serialization support is
 * appropriate for short term storage or RMI between applications running
 * the same version of Swing.  As of 1.4, support for long term storage
 * of all JavaBeans&trade;
 * has been added to the <code>java.beans</code> package.
 * Please see {@link java.beans.XMLEncoder}.
 *
 * @author Jeff Shapiro
 */

public class MetalSeparatorUI extends BasicSeparatorUI {

  public static ComponentUI createUI(JComponent c) {
    return new MetalSeparatorUI();
  }

  protected void installDefaults(JSeparator s) {
    LookAndFeel.installColors(s, "Separator.background", "Separator.foreground");
  }

  public void paint(Graphics g, JComponent c) {
    Dimension s = c.getSize();

    if (((JSeparator) c).getOrientation() == JSeparator.VERTICAL) {
      g.setColor(c.getForeground());
      g.drawLine(0, 0, 0, s.height);

      g.setColor(c.getBackground());
      g.drawLine(1, 0, 1, s.height);
    } else  // HORIZONTAL
    {
      g.setColor(c.getForeground());
      g.drawLine(0, 0, s.width, 0);

      g.setColor(c.getBackground());
      g.drawLine(0, 1, s.width, 1);
    }
  }

  public Dimension getPreferredSize(JComponent c) {
    if (((JSeparator) c).getOrientation() == JSeparator.VERTICAL) {
      return new Dimension(2, 0);
    } else {
      return new Dimension(0, 2);
    }
  }
}
